package math

import (
	nativemath "math"
)

// 地球半径，单位米
const R = 6367000

// lonA, latA分别为A点的纬度和经度
// lonB, latB分别为B点的纬度和经度
// 返回的距离单位为米
func Sphere(lonA, latA, lonB, latB float64) float64 {
	c := nativemath.Sin(latA)*nativemath.Sin(latB)*nativemath.Cos(lonA-lonB) + nativemath.Cos(latA)*nativemath.Cos(latB)
	return R * nativemath.Acos(c) * nativemath.Pi / 180
}
